#ifndef _PM25_DRV_H_
#define _PM25_DRV_H_

#include <stdint.h>
#include <stdbool.h>

typedef struct
{
	uint16_t pm1p0Conc;
	uint16_t pm2p5Conc;
	uint16_t pm10Conc;
	uint16_t pm0p3Num;
	uint16_t pm0p5Num;
	uint16_t pm1p0Num;
	uint16_t pm2p5Num;
	uint16_t pm5p0Num;
	uint16_t pm10Num;
} Pm25SensorData_t;

typedef enum 
{
	EXCELLENT,
	GOOD,
	MILD,
	MODERATE,
	SEVERE,
	TERRIBLE,
	OTHERINDEX
} AirQualityLevel_t;

void Pm25DrvInit(void);
void Pm25DrvTest(void);
bool GetPm25Data(Pm25SensorData_t *sensorData);
void Pm25DrvProc(void);
void TurnOnPm25Power(void);
void TurnOffPm25Power(void);
AirQualityLevel_t GetPm25Level(uint16_t pm2p5Conc);
#endif
